Field of the Invention
The invention relates generally to the parallel development of applications, and more specifically to automating the parallel development process throughout the development, testing, and deployment processes.
Description of the Related Art
Developing and deploying applications in a robust manner to be accessed by users, especially web applications, requires a number of processes. For a web application, these processes include managing source code, testing code, and deploying the code along with content to a production system where it can be accessed by users. These processes can take a substantial amount of time (and be prone to error), meaning that some changes cannot be tested or implemented until other changes have been tested and implemented. This need to wait slows down the overall development of an application.
IT developers perform parallel development tasks using source control tools for example MKS source code control system. MKS provides support for parallel development by allowing multiple development paths, or multiple versions of the same file, to exist in the same location. However, managing of source code in parallel is only one part of the process of developing, testing, and deploying robust applications, especially web applications. Aside from source code, throughout a web application's lifecycle, a change to a web application's underlying page definitions, URLs, metadata, content, graphics, documents, and resources may need to be worked on or tested in parallel.
By using a parallel development process, multiple changes and additions to an application can be implemented at substantially the same time. In general, the problem of parallel development and managing resources in parallel can basically be described as modifying the same resource or a collection of artifacts at the same time. This can be complicated by the fact that a resource may be indirectly changed if there are cross or inter-resource dependencies and references. The basic ability to manage business and IT resources in parallel (pages, content and portlet applications, or business functions) is further complicated by the underlying technology that supports the platform. For example, IBM Portal Server does not provide an automated framework which enables development of resources in parallel.
In general, parallel development requires the ability to develop, virtualize, test and deploy the same resource or collection or resources at the same time; making modifications in parallel, with changes to one resource not having any affect on the other versions of that resource.
Methods to extend parallel development throughout the entire application development process have to this point been ad-hoc, manual or user-intensive, and prone to error. What is needed is an overall system and process, preferably automated, to perform parallel development of an application.